package com

/**
 * 自定义脚本接口，用于在文件处理和打包流程中的各个阶段执行自定义操作
 */
interface CustomScript {

    /**
     * 在完成一次文件整理检查之前调用的方法
     * 可用于执行一些前置处理操作，如动态修改路径和配置信息
     */
    fun onBeforeCompleteOnceCheck() {}

    /**
     * 在完成一次文件整理检查之后调用的方法
     * 可用于执行一些后置处理操作
     */
    fun onAfterCompleteOnceCheck() {}

    /**
     * 在执行替换操作之前调用的方法
     * 可用于进行替换操作的前置准备工作
     */
    fun onBeforeReplace() {}

    /**
     * 在执行替换操作之后调用的方法
     * 可用于进行替换操作的后置处理
     */
    fun onAfterReplace() {}

    /**
     * 在修改入口文件配置之前调用的方法
     * 可用于准备修改入口文件配置所需的数据或环境
     */
    fun onBeforeChangeIndex() {}

    /**
     * 在修改入口文件配置之后调用的方法
     * 可用于在修改入口文件配置后进行清理或进一步处理
     */
    fun onAfterChangeIndex() {}

    /**
     * 在执行压缩操作之前调用的方法
     * 可用于在压缩文件之前进行必要的检查或准备工作
     */
    fun onBeforeCompress() {}

    /**
     * 在执行压缩操作之后调用的方法
     * 可用于在压缩文件后进行清理或通知
     */
    fun onAfterCompress() {}

    /**
     * 在子包打包开始之前调用的方法
     * 可用于在打包过程开始前进行初始化或资源分配
     */
    fun onBeforeSubpackageStart() {}

    /**
     * 在子包打包开始之后调用的方法
     * 可用于在打包过程开始后进行监控或日志记录
     */
    fun onAfterSubpackageStart() {}

    /**
     * 在子包打包结束之前调用的方法
     * 可用于在打包过程结束前进行最后的检查或处理
     */
    fun onBeforeSubpackageEnd() {}

    /**
     * 在子包打包结束之后调用的方法
     * 可用于在打包过程结束后进行资源回收或通知
     */
    fun onAfterSubpackageEnd() {}

    /**
     * 在上传服务之前调用的方法
     * 可用于在上传文件到服务器前进行身份验证或文件检查
     */
    fun onBeforeUpload() {}

    /**
     * 在上传服务之后调用的方法
     * 可用于在文件上传到服务器后进行日志记录或通知
     */
    fun onAfterUpload() {}

    /**
     * 整个程序即将结束前
     * 可进行数据保存等操作
     */
    fun onBeforeClose() {}

}
